#include <SPI.h>       //NRF24L01要用到SPI
#include <nRF24L01.h>  //使用NRF24L01需要用到的库
#include <RF24.h>      //使用NRF24L01需要用到的库
#include "settings.h"

RF24 radio(CE_pin, CSN_pin);  //配置NRF24L01CE，CSN引脚

char receive[14];             //用于接收传输到的数据

void setup() {
  Serial.begin(115200);
  Serial2.begin(115200);
  
  //遥控初始化
  while(!radio.begin())
  {
    Serial.printf("nrf24模块未连接\n");
    delay(500);
  }

  radio.setDataRate(nrf24_speed);
  radio.setChannel(nrf24_ch);
  radio.setCRCLength(nrf24_CRC);

  radio.openReadingPipe(1, addresses);
  radio.setPALevel(RF24_PA_HIGH);
  delay(5);
  radio.startListening();  //开始接收

}

void loop() {

  //等待有效数据
  if(radio.available())
  {
    //接收14字节数据
    radio.read(&receive, sizeof(receive));    //将NRF24L01收到的数据更新到receive变量中
    delay(5);                                 //等待一下保证接收完成
    Serial2.write( receive, sizeof(receive)); //把数据送至串口2

    Serial.printf("接收成功\n");
    delay(5);  

    //等待一毫秒继续问询NRF模块
    delay(10);
  }else
  {
    //当接收到任意串口数据，自动发送一帧数据为测试使用
    /*
    if( Serial2.available() )
    {
      while(Serial2.read() >= 0){}
      delay(5);
      Serial2.write( test_frame, sizeof(test_frame));
      delay(5);
      Serial.printf("发送测试帧\n");
    }
    */
    Serial.printf("未接收\n");
    delay(10);
  }
}

